
#ifndef  _RADIX_ARCHAISM_CACHE_H_
#define  _RADIX_ARCHAISM_CACHE_H_

#include <Archaism/Header.h>

_BeginNamespace(Radix)

class Cache
{
public:
	Cache(void* data = nullptr, uint stride = 1, uint count = 0);
	Cache(const Cache& cache);
	~Cache();

public:
	Cache& operator=(const Cache& cache);

public:
	void* data() const;
	uint stride() const;
	uint count() const;
	uint length() const;
	Cache& assign(void* data, uint stride, uint count);
	void clear();

private:
	void* mData;
	uint mStride;
	uint mCount;
};

_EndNamespace(Radix)

#endif//_RADIX_ARCHAISM_CACHE_H_
